#pragma once
#include <immintrin.h>
namespace Level3
{
	class Register
	{
	public:
	};
	class FloatRegister :
		public Register
	{
	public:
		union
		{
			double d[8];
			float f[16];
			unsigned u[16];
			int i[16];
			unsigned short u16[32];
			short s[32];
			wchar_t ws[32];
			unsigned char u8[64];
			signed char i8[64];
		}value;
	};
	class IntegerRegister :
		public Register
	{
	public:
		union
		{
			unsigned __int64 r64;
			unsigned r32;
			unsigned short r16;
			struct
			{
#ifdef _M_X64
				unsigned char r8l, r8h;
#elif defined(_M_ARM64)
				unsigned char r8h, r8l;
#endif
			}r8;
		}value;
	};
}